package com.credit.mola.app.utils.config

import com.credit.mola.app.utils.sp.SPUtils

/**
 * Sikadwa
 * @Author wwdeng
 * @CreateTime: 2024/5/21 15:15
 * @Annotation：App 配置文件
 */
object Configs {

    /**
     * APP 名称（大写）
     */
    const val AppName = "CREDITMOLA"
    /**
     * 隐私协议
     */
    const val PrivacyPolicyLink = "https://sites.google.com/maxpas-info.online/credit-mola/home"

    object SPKEY{

        /**
         * App 转发时区id Key
         */
        const val SIKADWA_TIMEZONE_ID = "CreditMola_TimeZone_Id"
        /**
         * App 转发时区 Key
         */
        const val SIKADWA_TIMEZONE = "CreditMola_TimeZone"
        /**
         * App 转发时区 区号  Key
         */
        const val SIKADWA_TIMEZONE_CODE = "CreditMola_TimeZone_Code"
        /**
         * App 转发时区 国家标识  Key
         */
        const val SIKADWA_TIMEZONE_COUNTRY = "CreditMola_TimeZone_Country"

        /**
         * 业务APP 配置请求
         */
        const val SIKADWA_COMMON = "CreditMola_Common"

        /**
         * 用户登录状态
         */
        const val SIKADWA_LOGIN = "CreditMola_isLogin"

        /**
         * 用户id（userId）
         * 登录接口获取 VH7vqSZFdCIj0qGuSRAZw
         */
        const val SIKADWA_USERID = "CreditMola_UserId"

        /**
         * 用户Token
         * 登录接口获取 VH7vqSZFdCIj0qGuSRAZw
         */
        const val SIKADWA_TOKEN = "CreditMola_Token"

        /**
         * 用户号码
         * 登录页面获取
         */
        const val SIKADWA_MOBILE = "CreditMola_Mobile"

        /**
         * 是否是审核账号
         * 登录时保存
         */
        const val SIKADWA_IS_CONFIG_ACCOUNT = "CreditMola_isConfigAccount"

        /**
         * 是否是渠道用户
         * 登录接口获取
         */
        const val SIKADWA_IS_ADSOURCE = "CreditMola_isAdSource"

        /**
         * 用户流程状态
         */
        const val SIKADWA_PROCESS = "CreditMola_Process"

        /**
         * Active Dialog Show Num
         */
        const val SIKADWA_DIALOG_ACTIVE_NUM = "CreditMola_Dialog_Active_Num"
        /**
         * Normal Dialog Show Num
         */
        const val SIKADWA_DIALOG_NORMAL_NUM = "CreditMola_Dialog_Normal_Num"

        /**
         * 加解密
         */
        const val CREDIT_MOLA_KEY = "${AppName}Key"
        const val CREDIT_MOLA_IV = "${AppName}Iv"

        /**
         * 权限声明操作状态 : 0未操作  1已同意  -1拒绝
         */
        const val SIKADWA_PERMISSION_REASON_STATUS = "${AppName}PermissionReasonStatus"

        /**
         * Notice Dialog Show Num
         */
        const val CREDIT_MOLA_NOTICE_SHOW_NUM = "${AppName}_Notice_Show_Num"

        /**
         * 上一次非强制更新提示时间戳
         */
        const val CREDIT_MOLA_VERSION_SHOW_LASTTIME = "${AppName}_Version_Show_LastTime"
    }

    /**
     * 事件
     */
    object Event{
        /**
         * 更新用户流程状态广播
         */
        const val PROCESS_REFRESH = "process_refresh"
        /**
         * 更新用户流程状态广播已完成
         */
        const val PROCESS_REFRESHED = "process_refreshed"
        /**
         * 通知执行提交信息
         */
        const val PROCESS_DATA_SUB = "process_data_submit"
        /**
         * 启动版本更新通知
         */
        const val CM_VERSION_UPDATE = "version_update"
    }

    /**
     * 保存String
     */
    fun saveSPString(key: String,value: String){
        SPUtils.put(key,value)
    }

    /**
     * 保存Boolean
     */
    fun saveSPBoolean(key: String,value: Boolean){
        SPUtils.put(key,value)
    }

    /**
     * 保存Int
     */
    fun saveSPInt(key: String,value: Int){
        SPUtils.put(key,value)
    }

    /**
     * 获取String
     */
    fun getSPString(key: String): String{
        return SPUtils.getString(key)
    }

    /**
     * 获取boolean
     */
    fun getSPBoolean(key: String): Boolean{
        return SPUtils.getBoolean(key,false)
    }

    /**
     * 获取Int
     */
    fun getSPInt(key: String): Int{
        return SPUtils.getInt(key,0)
    }

    /**
     * 是否是法语地区
     *  desc：地区转发（timeZone） 以 fcfa、xaf、senegal 结尾，则定义为法语地区
     */
    fun isFrench(): Boolean{
        val timeZone = getSPString(SPKEY.SIKADWA_TIMEZONE)
        return timeZone.endsWith("fcfa") || timeZone.endsWith("xaf") || timeZone.endsWith("senegal")
    }

    /**
     * 莫桑比克 258
     */
    fun isMoz(): Boolean{
        val timeZone = getSPString(SPKEY.SIKADWA_TIMEZONE)
        return timeZone.endsWith("moz")
    }

    /**
     * 安哥拉 258
     */
    fun isAngola(): Boolean{
        val timeZone = getSPString(SPKEY.SIKADWA_TIMEZONE)
        return timeZone.endsWith("angola")
    }

}